package dao.hero;


public class Jianwei extends BaseHero {
	private int num;//灼烧回合
	public Jianwei()
    {
       this.name="剑威";
       this.ID = 1369;
       this.HP = 696;
       this.maxHP=HP;
       this.ATT = 68;      
       this.DEF = 19;     
       this.DEX = 71;   
       this.blue = 455;
       this.sname1 = "普通攻击";
       this.sname2 = "寒霜箭 ";
       this.sname3 = "火球术";
       this.sname4 = "烈焰冲击波";
       this.describe_skill1 = "技能详解：普通攻击，造成一定的物理伤害";
       this.describe_skill2 = "技能详解：耗蓝50，对敌人发出冰箭，造成92-123点伤害并使之敏捷下降2，被动若敌人已被灼烧，格外造成50点伤害";
       this.describe_skill3 = "技能详解：耗蓝75，向目标投掷一个炽热的火球，造成125-154点伤害，并有概率附加2回合内持续灼烧伤害";
       this.describe_skill4 = "技能详解：耗蓝170，大招，召唤巨大的火焰吞噬对方，造成极大伤害（250-300），并附加2回合内持续灼烧伤害";
       this.describe_hero = "人物介绍：G142四大英雄之一，思维敏捷，能言善辩，英雄定位为高蓝高法爆，法师型英雄";
       this.myluck= "一般";
       num=99;
       headpath="image\\"+"jwhead.png";
       bodypath="image\\"+"jwbody.png";
       //head=Toolkit.getDefaultToolkit().getImage("image\\"+"xlhead.jpg");
}
	public void attack(int skill, BaseHero enemy) {
		// TODO Auto-generated method stub
		if(skill==1){
			skill1(enemy);
		}else if(skill==2){
			skill2(enemy);
		}else if(skill==3){
			skill3(enemy);
		}else if(skill==4){
			skill4(enemy);
		}
		blue+=25;
		if(num<3){
			enemy.setHP(enemy.getHP()-50);
			tip+="，"+enemy.getName()+"被灼烧，造成30点伤害";
		}
			
		num++;
	}


	public void skill1(BaseHero enemy) {
		// TODO Auto-generated method stub
		blood=true;//掉血
		BaseHero.luck=(int)(Math.random()*10);//运气值随机数
		enemy.setLastHP(enemy.getHP());//重置上一次血量
		if((BaseHero.luck<2||isDodge(enemy))&&!noDodge){
			tip="普通攻击,"+enemy.getName()+"运气太好了，闪开了这次攻击";
		}else if(BaseHero.luck>7){
			enemy.setHP(enemy.getHP()-(ATT*2+BaseHero.luck*5)*(1-enemy.getDEF()/100));
			tip=name+"状态不错，使出了会心一击，造成"+enemy.getName()+(int)(enemy.getLastHP()-enemy.getHP())+"伤害";
		}else {
			enemy.setHP(enemy.getHP()-(this.ATT+BaseHero.luck*4)*(1-enemy.getDEF()/100));
			tip=name+"普通攻击，造成"+enemy.getName()+(int)(enemy.getLastHP()-enemy.getHP())+"伤害";
		}
	}

	public void skill2(BaseHero enemy) {
		// TODO 耗蓝60，对敌人发出冰箭，造成92-123点伤害并使之敏捷下降2，被动若敌人已被灼烧，格外造成50点伤害
		blood=true;//掉血
		enemy.setLastHP(enemy.getHP());// 重置上一次血量

		if ((blue - 50) >= 0) {
			if (!noDodge && isDodge(enemy)) {
				// 闪避了
				tip = "寒霜箭," + enemy.getName() + "太敏捷了，竟然闪开了这次攻击";
			} else {// 没有闪避
				BaseHero.luck = (int) (Math.random() * 32);// 运气值随机数
				int hurry = 92 + BaseHero.luck;// 造成伤害点
				enemy.setHP(enemy.getHP() - hurry);// 更新血量
				enemy.setDEX(enemy.getDEX() - 2);// 敏捷下降2
				tip = name + "发出了寒霜箭 ，造成了" + hurry + "点伤害，并使" + enemy.getName()
						+ "敏捷下降2";
				// 若有灼烧，触发被动，造成格外伤害
				if (num < 3) {
					enemy.setHP(enemy.getHP() - 50);
					tip += "，" + enemy.getName() + "被灼烧，格外造成50点伤害";
				}
			}

			blue -= 50;
		} else {
			skill1(enemy);
		}
		
		
	}

	public void skill3(BaseHero enemy) {
		// TODO 向目标投掷一个炽热的火球，造成125-154点伤害，并有概率2回合内附加持续灼烧伤害
		blood=true;//掉血
		enemy.setLastHP(enemy.getHP());// 重置上一次血量

		if ((blue - 75) >= 0) {
			if (!noDodge && isDodge(enemy)) {
				// 闪避了
				tip = "火球术," + enemy.getName() + "太敏捷了，竟然闪开了这次攻击";
			} else {// 没有闪避
				BaseHero.luck = (int) (Math.random() * 30);// 运气值随机数
				int hurry = 125 + BaseHero.luck;// 造成伤害点
				enemy.setHP(enemy.getHP() - hurry);

				tip = name + "使出了火球术 ，造成了" + hurry + "点伤害";

				if (BaseHero.luck > 12) {// 有概率造成灼烧
					num = 1;
					tip += ",并附加灼烧持续2回合";
				}
			}

			blue -= 75;
		} else {
			skill1(enemy);
		}
		
		
		
	}

	public void skill4(BaseHero enemy) {
		// TODO Auto-generated method stub
		blood=true;//掉血
		enemy.setLastHP(enemy.getHP());// 重置上一次血量

		if ((blue - 170) >= 0) {
			if (!noDodge && isDodge(enemy)) {
				// 闪避了
				tip = "大招-烈焰冲击波," + enemy.getName() + "太敏捷了，竟然闪开了这次攻击";
			} else {// 没有闪避
				BaseHero.luck = (int) (Math.random() * 51);// 运气值随机数
				int hurry = 250 + BaseHero.luck;// 造成伤害点
				enemy.setHP(enemy.getHP() - hurry);

				tip = name + "使出了大招-烈焰冲击波！造成" + hurry + "点伤害,并附加灼烧持续2回合";
				num = 1;// 造成灼烧
			}

			blue -= 170;
		} else {
			skill1(enemy);
		}
		
		
		
	}
	public boolean isDodge(BaseHero enemy){
		//当前敏捷比敌人高，增加闪避率,否则降低闪避率
		double dodge=enemy.getDEX()*0.3+(enemy.getDEX()-DEX)*0.25;
		System.out.println("当前闪避率"+dodge);
		int rand=(int)(Math.random()*100);//运气值随机数
		if(rand<dodge){
			System.out.println("闪避了"+rand);
			return true;
		}else{
			System.out.println("闪不开"+rand);
			return false;
		}    
	}
}